package com.yangyang.androidconnect.util;

import android.graphics.Bitmap;
import android.media.MediaMetadataRetriever;

import java.io.File;
import java.io.FileOutputStream;

public class VideoThumbnailUtil {

    public static Bitmap createVideoThumbnail(String videoPath, String outputPath) {
        MediaMetadataRetriever retriever = new MediaMetadataRetriever();
        Bitmap bitmap = null;
        FileOutputStream out = null;

        try {
            retriever.setDataSource(videoPath);
            // 获取视频的第一帧作为缩略图
            bitmap = retriever.getFrameAtTime(0, MediaMetadataRetriever.OPTION_CLOSEST_SYNC);

            if (bitmap != null) {
                // 创建输出文件
                File file = new File(outputPath);
                out = new FileOutputStream(file);

                // 将Bitmap压缩并写入文件 (以JPEG格式保存)
                bitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
                out.flush();
            }

        } catch (Throwable e) {
            // 处理异常情况，比如文件路径无效等
            e.printStackTrace();
        } finally {
            try {
                if (out != null) {
                    out.close();
                }
            } catch (Throwable e) {
                e.printStackTrace();
            }
            try {
                retriever.release();  // 释放资源
            } catch (Throwable e) {
                // 捕获任何可能的异常，防止程序崩溃
                e.printStackTrace();
            }
        }
        return bitmap;
    }
}
